
/**
 * 图片URL处理工具
 */

// 处理图片URL转换
function processImageURLs(item, context) {
  console.log('处理图片URL:', item._id);
  
  // 优先使用fileURLs
  if (item.fileURLs && Array.isArray(item.fileURLs) && item.fileURLs.length > 0) {
    console.log('处理fileURLs数组:', item.fileURLs);
    
    // 初始化为占位符URL
    var fileURLs = [];
    for (var i = 0; i < item.fileURLs.length; i++) {
      var url = item.fileURLs[i];
      // 如果是云存储文件ID但没有cloud://前缀
      if (url && typeof url === 'string') {
        // 如果是相对路径，转换为绝对路径
        if (url.startsWith('/')) {
          console.log('使用本地路径:', url);
          fileURLs.push(url);
        }
        // 如果是http开头的URL，直接使用
        else if (url.startsWith('http')) {
          console.log('使用HTTP URL:', url);
          fileURLs.push(url);
        }
        // 如果是云存储ID
        else {
          console.log('云存储ID需要转换:', url);
          // 返回一个占位符URL，稍后会被更新
          fileURLs.push('/images/default_avatar.png');
        }
      } else {
        fileURLs.push('/images/default_avatar.png');
      }
    }
    
    // 处理需要转换的云存储ID
    var cloudFileIDs = [];
    for (var j = 0; j < item.fileURLs.length; j++) {
      var url = item.fileURLs[j];
      if (url && typeof url === 'string' && !url.startsWith('/') && !url.startsWith('http')) {
        cloudFileIDs.push(url);
      }
    }
    
    if (cloudFileIDs.length > 0) {
      console.log('需要转换的云存储ID:', cloudFileIDs);
      wx.cloud.getTempFileURL({
        fileList: cloudFileIDs,
        success: function(res) {
          console.log('获取临时URL成功:', res);
          if (res.fileList && res.fileList.length > 0) {
            var index = -1;
            for (var k = 0; k < context.data.artList.length; k++) {
              if (context.data.artList[k].id === item._id) {
                index = k;
                break;
              }
            }
            
            if (index !== -1) {
              var newFileURLs = context.data.artList[index].fileURLs.slice();
              
              for (var l = 0; l < res.fileList.length; l++) {
                var file = res.fileList[l];
                var urlIndex = item.fileURLs.indexOf(file.fileID);
                if (urlIndex !== -1) {
                  newFileURLs[urlIndex] = file.tempFileURL;
                }
              }
              
              var updateData = {};
              updateData['artList[' + index + '].fileURLs'] = newFileURLs;
              context.setData(updateData);
            }
          }
        },
        fail: function(err) {
          console.error('获取临时URL失败:', err);
        }
      });
    }
    
    return fileURLs;
  }
  // 如果没有fileURLs但有fileIDs，使用fileIDs
  else if (item.fileIDs && Array.isArray(item.fileIDs) && item.fileIDs.length > 0) {
    console.log('使用fileIDs数组:', item.fileIDs);
    
    // 初始化为占位符URL
    var fileURLs = [];
    for (var m = 0; m < item.fileIDs.length; m++) {
      fileURLs.push('/images/default_avatar.png');
    }
    
    // 获取临时访问链接
    wx.cloud.getTempFileURL({
      fileList: item.fileIDs,
      success: function(res) {
        console.log('获取临时URL成功:', res);
        if (res.fileList && res.fileList.length > 0) {
          var tempUrls = [];
          for (var n = 0; n < res.fileList.length; n++) {
            tempUrls.push(res.fileList[n].tempFileURL);
          }
          
          var index = -1;
          for (var o = 0; o < context.data.artList.length; o++) {
            if (context.data.artList[o].id === item._id) {
              index = o;
              break;
            }
          }
          
          if (index !== -1) {
            var updateData = {};
            updateData['artList[' + index + '].fileURLs'] = tempUrls;
            context.setData(updateData);
          }
        }
      },
      fail: function(err) {
        console.error('获取临时访问链接失败:', err);
      }
    });
    
    return fileURLs;
  }
  // 兼容旧数据：如果没有fileURLs和fileIDs，但有单个fileID
  else if (item.fileID && typeof item.fileID === 'string' && item.fileID.trim() !== '') {
    console.log('使用单个fileID:', item.fileID);
    
    // 初始化为占位符URL
    var fileURLs = ['/images/default_avatar.png'];
    
    // 获取临时访问链接
    wx.cloud.getTempFileURL({
      fileList: [item.fileID],
      success: function(res) {
        console.log('获取临时URL成功:', res);
        if (res.fileList && res.fileList[0] && res.fileList[0].tempFileURL) {
          var tempURL = res.fileList[0].tempFileURL;
          var index = -1;
          for (var p = 0; p < context.data.artList.length; p++) {
            if (context.data.artList[p].id === item._id) {
              index = p;
              break;
            }
          }
          
          if (index !== -1) {
            var updateData = {};
            updateData['artList[' + index + '].fileURLs[0]'] = tempURL;
            context.setData(updateData);
          }
        }
      },
      fail: function(err) {
        console.error('获取临时访问链接失败:', err);
      }
    });
    
    return fileURLs;
  }
  // 如果没有任何图片信息
  else {
    console.log('没有找到图片信息:', item);
    return [];
  }
}

module.exports = {
  processImageURLs: processImageURLs
};